package com.matt.service;

import com.matt.commons.dto.sso.StaffDTO;
import com.matt.domain.TeachOperationLog;
import com.matt.foundation.query.OperationLogQuery;
import org.springframework.data.domain.Page;

/**
 * *******************************
 * Created by Ron.
 * form com.matt
 * on 2017/9/27
 * *******************************
 */
public interface TeachOperationLogService {

    TeachOperationLog save(String code, String operationName, String description, String staffId, String areaId);

    Page<TeachOperationLog> getLogByCondition(OperationLogQuery query);
    Page<TeachOperationLog> getMyLogByCondition(OperationLogQuery query);

    TeachOperationLog gardenAdviseLog(String childrenId, String content, String ticket, String code);
    TeachOperationLog addBirthdayRecordLog(String ticket, String code);

    TeachOperationLog dropOutLog(String staffId, String areaId, String childrenId, String code);
    TeachOperationLog graduateLog(String staffId, String areaId, String childrenId, String code);

//    TeachOperationLog addContractLog(String staffId, String areaId, String childrenId, String childrenName, String courseName, String courseTime, String value);
//    TeachOperationLog contractFinishLog(String ticket, String contractId, String value);
//    TeachOperationLog contractRemarkLog(String ticket, String contractId, String remark, String value);

    TeachOperationLog addEvaluatingMLog(String staffId, String areaId, String childrenId, String code);
    TeachOperationLog evaluatingMLog(String staffId, String areaId, String childrenId, String code);
    TeachOperationLog addEvaluatingCBLog(String staffId, String areaId,  String childrenName, String birthday, String code);
    TeachOperationLog evaluatingCBLog(String ticket, String evaluatingCBRecordId, String code);
    TeachOperationLog bindEvaluatingCBLog(String ticket, String childrenId, String code);
    TeachOperationLog addEvaluatingCELog(String staffId, String areaId, String childrenId, String childrenCourseItemId, String code);

    TeachOperationLog addEvaluateEarlyMLog(String ticket, String childrenId, String code);
    TeachOperationLog addEvaluateLog(String ticket, String childrenId, String code);
    TeachOperationLog evaluateEarlyMLog(String ticket, String evaluatingCBRecordId, String code);

    TeachOperationLog addHealthInfo(String ticket, String childrenId, String code);
    TeachOperationLog modifyHealthInfo(String ticket, String childrenId, String code);


    TeachOperationLog addClassesLog(String ticket, String classesName, String code);
    TeachOperationLog modifyClassesLog(String ticket, String classesName, String code);
    TeachOperationLog classesPlanLog(String ticket, String classesId, String baseTime, String code);
    TeachOperationLog classesPrepareLog(String ticket, String classesId, String date, String content, String code);

    TeachOperationLog checkInLog(String ticket, String childrenId, Integer checkType, Integer healthyStatus, String specialRecord, String code);
    TeachOperationLog mulitCheckInLog(String ticket, String[] childrenIds,String code);
    TeachOperationLog addObservationLog(String ticket, String childrenId, String code);
    TeachOperationLog addLiveRecordLog(String ticket, Integer type, String[] childrenIds, String code);

    TeachOperationLog addChildrenCourseLog(String ticket, String childrenId, String[] coursePlanIds, String code);
    TeachOperationLog modifyChildrenCourseLog(String ticket, String childrenCourseId, String[] coursePlanIds, String code);
    TeachOperationLog modifyCourseTimeLog(String ticket, String childrenId, String remark, String code);

    TeachOperationLog earlyPrepareLog(String ticket, String coursePlanId, String content, String code);
    TeachOperationLog satCheckInLog(String ticket, String courseItemId, Integer status, String remark, String code);

    TeachOperationLog modifyLiveRoomLog(String ticket, String roomName,  String code);
    TeachOperationLog addTeachingAreaLog(String ticket, String areaName,  String code);
    TeachOperationLog modifyTeachingAreaLog(String ticket, String areaName,  String code);

    TeachOperationLog addStaffLog(String ticket, String realName,  String code);
    TeachOperationLog modifyStaffLog(String ticket, String id,  String code);
//    TeachOperationLog modifyStaffRoleLog(String ticket, String id, String roleCode, String value);
    TeachOperationLog dimissionLog(String ticket, String id,  String code);



    TeachOperationLog addSystemProcessCourseItemLog(String childrenId, String planTitle, String areaId);

    TeachOperationLog addTargetRecordLog(StaffDTO staff,  String typeName);
}
